<template>
  <view class="page">
    <!-- 表单组件 -->
    <mes-form :mesForm="mesFormTop"></mes-form>
    <mes-tip type="examine" v-if="status == '1'"></mes-tip>
    <!-- 商品-->
    <mes-goods
      ref="mesGoodsRef"
      :form="mesGoodsForm"
      @edit="editGoods"
      @delete="delGoods"
      :showDel="false"
    >
    </mes-goods>
    <!-- 备注 -->
    <mes-form :mesForm="remark"></mes-form>
    <!-- 重置 -->
    <mes-button :type="3" :form="buttonFrom"></mes-button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      goodsList: [], //更新后的商品
      id: '', //当前id
      status: '', //当前审核状态
      mesGoodsForm: {
        numberUnitField: 'unit_name', //数量单位
        priceField: 'unit_price' //单价
      },
      buttonFrom: {
        leftEvent: () => {
          if (this.status == '1') {
            return this.$tools.toast('不能删除已审核单据')
          }
          let that = this
          uni.showModal({
            title: '提示',
            content: '是否确认删除？',
            success: function (r) {
              if (r.confirm) {
                that.$api.prod.picking.del({ id: that.id }).then((res) => {
                  if (res.code == 200) {
                    that.$tools.successBack(res.msg)
                  }
                })
              } else if (r.cancel) {
                // that.$tools.successBack('用户取消删除')
              }
            }
          })
        },
        leftText: '删除',
        rightEvent: () => {
          if (this.status == '1') {
            return this.$tools.toast('不能编辑已审核单据')
          }
          let obj = {
            id: this.id,
            name: 'details',
            production_code: this.mesFormTop.row.production_code,
            purchase_code: this.mesFormTop.row.purchase_code
          }
          obj = JSON.stringify(obj)
          uni.navigateTo({ url: `/pages/home/requisition/edit?obj=${obj}` })
        },
        rightText: '编辑'
      },
      remark: {
        top: 20,
        row: {
          remark: ''
        },
        items: [
          {
            title: '备注',
            slots: {
              field: 'remark'
            }
          }
        ]
      },
      mesFormTop: {
        top: 20,
        row: {},
        items: [
          {
            title: '生产单',
            slots: {
              field: 'production_code'
            }
          },
          {
            title: '单据编号',
            slots: {
              field: 'purchase_code'
            }
          },
          {
            title: '单据日期',
            slots: {
              field: 'purchase_time'
            }
          },
          {
            title: '领料人',
            slots: {
              field: 'work_name'
            }
          }
        ]
      }
    }
  },
  methods: {
    delGoods(i) {
      getApp().globalData.goods.list.splice(i, 1)
    },
    // 点击编辑商品
    editGoods(i) {
      let obj = {
        index: i,
        name: 'details'
      }
      obj = JSON.stringify(obj)
      let item = getApp().globalData.goods.list[i]
      uni.navigateTo({ url: `/pages/home/requisition/goods?obj=${obj}` })
      console.log('编辑的商品', item)
    },
    //获取数据
    getData() {
      getApp().globalData.goods.list = [] //清空商品数据
      this.$api.prod.picking.getdetail({ id: this.id }).then((res) => {
        if (res.code == 200) {
          let info_list = []
          if (res.data.info_list && res.data.info_list.length) {
            res.data.info_list.forEach((item) => {
              info_list.push({
                id: item.id,
                goods_id: item.goods_id, //商品id
                unit: item.unit,
                // 编辑商品用到的（提交参数）
                // 商品编号（商品详情获取或者通用->商品价格接口获取）
                goods_code: item.goods_code,
                //  商品规格型号
                goods_note: item.goods_note,
                goods_attr: item.goods_attr || null, // 商品属性ID(验证需要加)
                attr_name:item.attr_name ||null,//属性名称
                auxiliary:item.goods_info.auxiliary,//属性状态
                serial_status: item.goods_info.serial ||null,
                batch:item.goods_info.batch || null,//是否开启批次
                //  商品单位ID（资料->商品获取商品单位列表，用户选择）
                goods_unit: item.unit_id,
                stores_id: item.stores_id, //仓库ID
                allow_stock: item.allow_stock, // 可用库存
                //  数量（默认为1，用户修改）
                number: item.number,
                //  基本单位ID（商品详情获取或者通用->商品价格接口获取）
                default_unit: item.default_unit,
                //  基本数量（默认为1，多单位时需要换算，或者通过通用->价格变动接口格式化）
                basic_nmber: item.basic_nmber,
                unit_price: item.purchase, //商品单价
                all_money:
                  item.money !== item.purchase * item.number
                    ? item.purchase * item.number
                    : item.money, //购货金额
                remark: item.remark, //备注
                batch_id: item.batch_id, //批次ID
                batch_name: item.batch_name, //批次名称
                manufacture:item.manufacture? item.manufacture*1000:'', // 生产日期
                guarantee: item.guarantee, //保质期
                validity: item.validity?item.validity *1000 :'', //有效期至
                serial: item.serial || null, //序列号数组
                //  商品单价（通用->商品价格获取）
                // purchase: item.purchase,
                // 编辑商品用到的（展示参数）
                default_unit_name: item.default_unit_name, //基本单位名称
                // mes-goods显示中用到的
                unit_name: item.unit_name, //数量单位
                goods_image: item.goods_image, //图片
                goods_name: item.goods_name, //商品名称
                period_period:item.serial //序列号数组
              })
            })
          }
          getApp().globalData.goods.list = info_list
          this.$refs.mesGoodsRef.getGoods()
          this.mesFormTop.row = {
            production_code: res.data.production_code,
            purchase_code: res.data.purchase_code,
            purchase_time: res.data.purchase_time,
            work_id: res.data.work_id,
            work_name: res.data.work_name
          }
          this.remark.row.remark = res.data.remark
        }
      })
    }
  },
  onShow() {
    this.getData()
  },
  onLoad(option) {
    let newObj = JSON.parse(option.obj)
    this.id = newObj.id
    this.status = newObj.status
  }
}
</script>

<style lang="less" scoped>
</style>
